import com.thoughtworks.selenium.*;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.regex.Pattern;


public class agregarEquiposAUnTorneo extends SeleneseTestCase {
	
	private Connection connect = null;
	private Statement statement = null;
	private PreparedStatement preparedStatement = null;
	private ResultSet resultSet = null;
	@Before
	public void setUp() throws Exception {
		selenium = new DefaultSelenium("localhost", 4444, "*chrome", "http://localhost:8081/");
		selenium.start();
	}

	@Test
	public void testAgregarEquiposTorneo() throws Exception {
		
		caso2();
		assertTrue(consulta());
	}

	//CASO EXITOSO
	public void caso2(){
		selenium.open("/Miscore/ingresar.php");
		selenium.type("name=usuario", "prueba");
		selenium.type("name=pass", "1qazxsw2");
		selenium.click("css=input.btn_ingresar");
		selenium.waitForPageToLoad("30000");
		selenium.click("link=Equipos");
		selenium.waitForPageToLoad("30000");
		selenium.click("id=seleccionar");
		selenium.waitForPageToLoad("30000");
		selenium.select("name=selecciona2", "label=locos");
		selenium.click("//input[@value='Agregar']");
		selenium.waitForPageToLoad("30000");
		assertTrue(selenium.isTextPresent("agregado satisfactoriamente"));
		
	}

	public boolean consulta() throws Exception {
		 Connection conn = null;
		  String url = "jdbc:mysql://localhost:3306/";
		  String dbName = "mydb";
		  String driver = "com.mysql.jdbc.Driver";
		  String userName = "root"; 
		  String password = "";
		  try {
			  Class.forName(driver).newInstance();
		  conn = DriverManager.getConnection(url+dbName,userName,password);
		  statement=conn.createStatement();
		  resultSet = statement.executeQuery("SELECT nombre_equipo, nombre_torneo FROM equipos_torneo join torneo on ( equipos_torneo.torneo_id_torneo=torneo.id_torneo) inner join equipo on (equipos_torneo.equipo_id_equipo=equipo.id_equipo)");
		  comparar(resultSet);
		  System.out.println("Connected to the database");
		  conn.close();
		  System.out.println("Disconnected from database");
		  return true;
		  } catch (Exception e) {
		  
			  e.printStackTrace();
			  return false;
		  }
		 
	}

	private void comparar(ResultSet resultSet) throws SQLException {
	
		while (resultSet.next()) {
				
			String nombreEquipo = resultSet.getString("nombre_equipo");
			String nombreTorneo = resultSet.getString("nombre_torneo");
			System.out.println("entre");
			System.out.println("NOMBRE EQUIPO "+nombreEquipo);
			System.out.println("nombre torneo"+nombreTorneo);
			if(nombreTorneo.equals("prueba1")&&nombreEquipo.equals("locos")){
				System.out.println("entre uju");			
					assertTrue(nombreTorneo.equals("prueba1"));										
			}
		}
	}
	
	@After
	public void tearDown() throws Exception {
		selenium.stop();
	}
}
